import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
Vue.config.productionTip = false

/*// 引入wangEditor
import wangEditor from 'wangeditor'
//给Vue添加一个全局属性，之后可以通过this.$wangEditor访问到此属性
Vue.prototype.wangEditor = wangEditor*/

//引入Axios
import axios from 'axios'
//给Vue添加全局变量，添加的全局变量可以在任意的*.vue文件中通过this.xxx访问
Vue.prototype.axios=axios

// 设置请求拦截器
axios.interceptors.request.use(
    config => {
      const token = JSON.parse(localStorage.getItem('token'));
      if (token) {
        config.headers.Authorization = token;// 在请求的header中携带token
      }
      return config;
    },
    error => {
      return Promise.reject(error);
    }
)



//引入qs
import qs from 'qs'
Vue.prototype.qs=qs;


new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

//重写方法解决跳转到同一路由报错问题
const myReplace = router.replace;
router.replace = function replace(location) {
  return myReplace.call(this,location).catch(err=>err);
};
const myPush = router.push;
router.push = function push(location) {
  return myPush.call(this,location).catch(err=>err);
};


// 定义一个定期删除过期的数据的函数
function deleteExpiredData() {
    const user = localStorage.getItem("user");
    console.log(user);
    if (user){
        const data = JSON.parse(user);
        const now = Date.now();
        if (now > data.exp) {
            localStorage.removeItem("user");
            localStorage.removeItem("token")
        }
    }
}
// 设置定期删除的间隔时间（单位：毫秒）
const deletionInterval = 60*60000; // 1小时

// 每隔一段时间执行一次删除操作
setInterval(deleteExpiredData, deletionInterval);